// 环境变量
const ENV = process.env.NODE_ENV || 'development';

// 基础配置
const BASE_CONFIG = {
  // API基础URL
  apiBaseUrl: process.env.REACT_APP_API_URL || '/api',
  
  // 应用名称
  appName: '后台管理系统',
  
  // 版本号
  version: '1.0.0',
  
  // 版权信息
  copyright: '© 2024 后台管理系统. All Rights Reserved.',
  
  // 默认分页配置
  pagination: {
    defaultPageSize: 10,
    pageSizeOptions: ['10', '20', '50', '100'],
  },
  
  // 上传文件配置
  upload: {
    maxSize: 2 * 1024 * 1024, // 2MB
    acceptedFileTypes: {
      image: ['.jpg', '.jpeg', '.png', '.gif'],
      document: ['.pdf', '.doc', '.docx', '.xls', '.xlsx'],
    },
  },
  
  // 本地存储键名
  storageKeys: {
    token: 'token',
    userInfo: 'userInfo',
    isLoggedIn: 'isLoggedIn',
    theme: 'theme',
    language: 'language',
  },
  
  // 路由配置
  routes: {
    login: '/login',
    dashboard: '/dashboard',
    profile: '/profile',
    settings: '/settings',
  },
  
  // 主题配置
  theme: {
    // 主色调
    primaryColor: '#1890ff',
    // 成功色
    successColor: '#52c41a',
    // 警告色
    warningColor: '#faad14',
    // 错误色
    errorColor: '#f5222d',
    // 链接色
    linkColor: '#1890ff',
    // 边框圆角
    borderRadius: '4px',
    // 字体配置
    font: {
      family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
      sizeSm: '12px',
      sizeBase: '14px',
      sizeLg: '16px',
      sizeXl: '18px',
    },
  },
};

// 开发环境配置
const DEV_CONFIG = {
  ...BASE_CONFIG,
  apiBaseUrl: 'http://localhost:3000/api',
};

// 生产环境配置
const PROD_CONFIG = {
  ...BASE_CONFIG,
  apiBaseUrl: 'https://api.example.com',
};

// 测试环境配置
const TEST_CONFIG = {
  ...BASE_CONFIG,
  apiBaseUrl: 'https://test-api.example.com',
};

// 根据环境导出相应配置
const CONFIG = {
  development: DEV_CONFIG,
  production: PROD_CONFIG,
  test: TEST_CONFIG,
}[ENV];

export default CONFIG;

// 导出类型定义
export type Config = typeof CONFIG;

// 导出常用配置项
export const {
  apiBaseUrl,
  appName,
  version,
  copyright,
  pagination,
  upload,
  storageKeys,
  routes,
  theme,
} = CONFIG;